/****************************************************************************
**
****************************************************************************/

#ifndef BASECONFIGURE_H
#define BASECONFIGURE_H

#include <QObject>

class BaseConfigure : public QObject
{
    Q_OBJECT

public:
    explicit BaseConfigure(QObject *parent = nullptr);
    ~BaseConfigure();

    /***************************************************基础配置***************************************************/

    static QString gun_number(int gunno);
    static void set_gun_number(int gunno, const QString& gun_number);

    static QString pile_model();
    static void set_pile_model(const QString& pile_model);

    static QString pile_vendor();
    static void set_pile_vendor(const QString& pile_vendor);

    static QString qrcode_prefix();
    static void set_qrcode_prefix(const QString& qrcode_prefix);

    static QString qrcode_post();
    static void set_qrcode_post(const QString& qrcode_post);

    static QString net_ip();
    static void set_net_ip(const QString& net_ip);

    static quint16 net_port();
    static void set_net_port(quint16 net_port);

    static QString net_type();
    static void set_net_type(const QString& net_type);

    static QString net_protocol();
    static void set_set_protocol(const QString& net_protocol);

    /***************************************************功能配置***************************************************/

    static bool offline_hci_charge();
    static void set_offline_hci_charge(bool offline);

    /***************************************************系统配置***************************************************/

    static QString model_type();
    static void set_model_type(QString type);

    static qint8 model_count(int gunno);
    static void set_model_count(int gunno, qint8 count);

    static qint32 meter_baud();
    static void set_meter_baud(qint32 baud);

    static QString lock_type();
    static void set_lock_type(QString type);

    static QString lock_fb();
    static void set_lock_fb(QString fb);

    /***************************************************充电配置***************************************************/

    static bool apu24(int gunno);
    static void set_apu24(int gunno, bool is_24v);

    static qint16 power_ctrl(int gunno);
    static void set_power_ctrl(int gunno, qint16 power);

protected:

private:
    /***************************************************基础配置***************************************************/

    static QList<QString> gun_number_;
    static QString pile_model_;
    static QString pile_vendor_;
    static QString qrcode_prefix_;
    static QString qrcode_post_;

    static QString net_ip_;
    static quint16 net_port_;
    static QString net_type_;
    static QString net_protocol_;

    /***************************************************功能配置***************************************************/

    static bool offline_hci_charge_;
    static bool offline_card_charge_;
    static bool online_vin_charge_;

    /***************************************************系统配置***************************************************/

    static QString model_type_;
    static QList<qint8> model_count_;

    static qint32 meter_baud_;
    static QString lock_type_;

    static QString lock_fb_;

    /***************************************************充电配置***************************************************/

    static QList<bool> apu24_;
    static QList<qint16> power_ctrl_;

private:

signals:

public slots:

private slots:

};

#endif // BASECONFIGURE_H
